package net.kucoe.grin.context.application;

/**
 * Abstract descriptor with class field.
 * 
 * @author Vitaliy Basyuk
 */
public abstract class DefinedWithClass {
    
    private Class<?> clazz;
    
    /**
     * Returns the clazz Class<?>.
     * 
     * @return the clazz Class<?>.
     */
    public Class<?> getClazz() {
        return clazz;
    }
    
    /**
     * Overrides clazz the clazz.
     * 
     * @param clazz the clazz to set.
     */
    public void setClazz(final Class<?> clazz) {
        this.clazz = clazz;
    }
    
    /**
     * Overrides clazz the clazz.
     * 
     * @param clazzName class name
     * @throws ClassNotFoundException
     */
    public void setClazzName(final String clazzName) throws ClassNotFoundException {
        clazz = Class.forName(clazzName);
    }
    
}
